home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / MEDICAL / 2608A.ZIP / GP.ZIP / CHECKSM.SRC < prev    next >
Text File  |  1990-11-03  |  5KB  |  249 lines

  1. ;\|
  2. ;CHECKSM.SRC     Translated from CHECKSM.EDT by Roger Mathew's EDT2SRC Ver 4.11
  3. ;NEW      03:50:30 AM   7/11/89
  4. DO_DEFINES:
  5.     define(TD|D|10||)
  6.     define(POS|N|1||)
  7.     define(TARGET|N|3||)
  8.     define(AGE|N|6|2|)
  9.     define(REC_DATE|N|4||)
  10.     define(REC_FIELD|A|15||)
  11.     define(FLAG1|N|2||)
  12.     define(TOT_RECORDS|N|8||)
  13.     define(NUMBER|N|8||)
  14.     define(PAGE|N|5||)
  15.     define(SELECT_FROM1|D|10||)
  16.     define(SELECT_THRU1|D|10||)
  17.     define(SELECT_DR|N|1||)
  18.     define(TO_DATE|S|8||)
  19.     define(SORT_BY|N|5||)
  20.     define(PERCENT1|N|6|2|)
  21.     define(PERCENT|N|6|2|)
  22.     define(SORT_BY_TEXT|A|15||)
  23.     define(AGE1|N|6|2|)
  24.     define(MENU_HLDR|A|27||5)
  25.     define(MATCHING_RECS|N|4||)
  26. OPEN_FILES:
  27.     open(RECALLS|||)
  28.     open(PATIENT|||)
  29.     date(TD|G)
  30.     trap(Q|G|EXIT2)
  31.     trap(I|G|EXIT2)
  32. MOUNT_SCR:
  33.     mount(SELECT|S)
  34.     pmsg(" F1 - Help                                                           ESC - Exit "|1|25|N|Y|S|)
  35. START:
  36.     SORT_BY_TEXT = (DATE.OF.BIRTH)
  37.     enter(TO_DATE||||N|N|N|||N)
  38.     SELECT_THRU1 = (TO_DATE-8760)
  39.     SELECT_FROM1 = (TO_DATE-23725)
  40.     SELECT_DR = (1)
  41.     enter(SELECT_FROM1|||START|||||)
  42.     enter(SELECT_THRU1||||||||)
  43. MOUNT_RPT:
  44.     trap(I|G|EXIT2)
  45.     trap(P|S|PRT_TOF)
  46.     mount(NEW|R|P)
  47. FIND_FIRST:
  48.     DATE.OF.BIRTH = (SELECT_FROM1)
  49.     find(G|DATE.OF.BIRTH|NO_RECS|)
  50. PRT_DETAIL:
  51.     if SEX <> ("F") goto FIND_NEXT
  52.     if SELECT_DR <> (0) then if DOCTOR <> (SELECT_DR) goto FIND_NEXT
  53.     if SELECT_FROM1 <> (0) then if DATE.OF.BIRTH < (SELECT_FROM1) goto FIND_NEXT
  54.     if SELECT_THRU1 <> (0) then if DATE.OF.BIRTH > (SELECT_THRU1) goto FINISH
  55.     gosub DO_RELATED
  56.     TOT_RECORDS = (TOT_RECORDS + 1)
  57. FIND_NEXT:
  58.     find(N|PATIENT|FINISH)
  59.     goto PRT_DETAIL
  60. ABORT_RPT:
  61.     pmsg(""|||N|N|D|)
  62.     pmsg(""|||N|N|D|)
  63.     pmsg(">>>>>  Report was terminated before completion  <<<<<"|||N|N|D|)
  64.     pmsg(""|||N|N|D|)
  65.     pmsg(""|||N|N|D|)
  66. FINISH:
  67.     pblnk(2)
  68.     PERCENT1 = (MATCHING_RECS/TOT_RECORDS*100)
  69.     PERCENT = (100-PERCENT1)
  70.     pmsg("        TOTAL RECORDS MATCHING ";TOT_RECORDS|||N|N|D|)
  71.     pmsg("           RECORDS PRINTED; ";MATCHING_RECS|||N|N|D|)
  72.     pmsg("     PERCENTAGE COMPLETED ON TIME ETC: ";PERCENT|||N|N|P|)
  73.     PERCENT = (TOT_RECORDS-MATCHING_RECS)
  74.     TARGET = (TOT_RECORDS*8/10)
  75.     pmsg("YOU HAVE ACHIEVED  ";PERCENT; "  SMEARS WHEN YOUR TARGET IS ";TARGET|||N|N|P|)
  76.     trap(P|D)
  77.     ptof
  78. EXIT:
  79.     TOT_RECORDS = (0)
  80.     MATCHING_RECS = (0)
  81.     SELECT_DR = (SELECT_DR+1)
  82.     if SELECT_DR > (4) then run("recmenu")
  83.     goto MOUNT_RPT
  84. EXIT2:
  85.     run("recmenu")
  86. DO_RELATED:
  87.     COD[1] = ("")
  88.     COD.D[1] = (0)
  89.     REC_FIELD = ("")
  90.     COD.REF = (RECORD.NUMBER)
  91.     find(M|COD.REF|NO_RFIND|N)
  92.     if COD.D[1] > (TO_DATE) do
  93.         {
  94.         if COD[1] = ("HYS") then TOT_RECORDS = (TOT_RECORDS-1)
  95.         if COD[1] = ("REF") do
  96.             {
  97.             REC_FIELD = ("EXCEPTION")
  98.             goto RET_PRINT
  99.             }
  100.         if COD[1] = ("VIR") do
  101.             {
  102.             REC_FIELD = ("EXCEPTION")
  103.             goto RET_PRINT
  104.             }
  105.         POS =loc("M"|COD[1]|1||4)
  106.         if POS > (0) do
  107.             {
  108.             REC_FIELD = ("EXCEPTION")
  109.             TOT_RECORDS = (TOT_RECORDS-1)
  110.             goto RET_PRINT
  111.             }
  112.         }
  113.     if COD.D[1] < (TO_DATE) then gosub CHK_BREAK
  114.     ret
  115. PRT_TOF:
  116.     pset(130|66|60)
  117.     pchr(P|1)
  118.     pfmt(1||||)
  119.     pfmt(3|||N|N|)
  120.     pfmt(5|||N|N|)
  121.     pfmt(6|||N|N|)
  122.     pfmt(7|||N|N|)
  123.     pfmt(3|||N|N|)
  124.     pfmt(2|||N|N|)
  125.     pfmt(3|||N|N|)
  126.     ret
  127. CHK_BREAK:
  128.     NUMBER = (TO_DATE-DATE.OF.BIRTH)
  129.     AGE = (NUMBER/365)
  130.     if COD[1] = ("1") goto BOOSTER
  131.     if COD[1] = ("2") goto BOOSTER
  132.     if COD[1] = ("3") goto BOOSTER
  133.     if COD[1] = ("4") goto BOOSTER
  134.     if COD[1] = ("DONE") ret
  135.     REC_FIELD = ("EXCEPTION")
  136.     goto RET_PRINT
  137. BOOSTER:
  138.     REC_FIELD = ("OVERDUE?")
  139.     if COD.D[1] < (TO_DATE) goto RET_PRINT
  140.     ret
  141. RET_PRINT:
  142.     MATCHING_RECS = (MATCHING_RECS+1)
  143.     pfmt(4|||N|N|)
  144.     ret
  145. NO_RECS:
  146.     goto EXIT
  147. NO_RFIND:
  148.     COD.REF = (0)
  149.     TOT_RECORDS = (TOT_RECORDS+1)
  150.     REC_FIELD = ("NO RECALL???")
  151.     pfmt(4|||N|N|)
  152.     pops
  153.     goto FIND_NEXT
  154.     ret
  155. \STSELECT  
  156.                              Selection Screen For
  157.                       SMEAR RESULTS FOR VARIOUS AGE GROUPS
  158. ════════════════════════════════════════════════════════════════════════════════
  159.  
  160. THIS PRINTS OUT DOCTORS SMEARS RESULTS AND EXCEPTIONS TO TODAY
  161.  
  162. ────────────────────────────────────────────────────────────────────────────────
  163.  
  164.                           Doctor : &           1,2,3,4
  165.     Where DATE.OF.BIRTH   is From: &           Always enter Oldest to
  166.       and DATE.OF.BIRTH   is Thru: &           youngest.
  167. DATE YOU WANT REPORT UP :&
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180. \
  181. SELECT_DR
  182. SELECT_FROM1
  183. SELECT_THRU1
  184. TO_DATE
  185. \
  186. \R NEW     
  187. SMEAR EXCEPTION REPORT FOR FOR DOCTOR & ON :&
  188. PATIENT NAME                  ADDRESS                AREA                    LAST SMEAR  CODE  DATE    STATUS      STATUS  AGE
  189. ===============================================================================================================================
  190. &                             &                      &                      &           [&   ] &         &                 &
  191. THIS PROGRAM PRINTS OUT ALL SMEAR RESULTS THAT DO NOT APPEAR TO BE UP TO DATE ON :&         AGES 25 -64
  192. IT DOES NOT GIVE A LIST OF RECALLS DUE!!!!!!!! NOR DOES IT INCLUDE "HYS"IN TOTAL AT RISK
  193. THESE SHOULD BE ATTENDED TO TODAY AND NONE SHOULD APPEAR ON THE NEXT PRINTOUT!!!
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235. \
  236. SELECT_DR
  237. TD
  238. PATIENT.NAME
  239. ADDRESS1
  240. AREA
  241. SM_DATE
  242. COD[1]
  243. COD.D[1]
  244. REC_FIELD
  245. AGE
  246. TO_DATE
  247. \
  248.  
  249.